package Validation;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;

/**
 * Classe usada para valida��o de atributos
 * @author Gustavo C.
 * @author Rodrigo M.
 *
 */
public class ValidaSimples {

    /**
     * Objetivo: validar nome informado
     * Retorno: 0 - Nome inválido
     * 			1 - Nome v�lido
     *
     * @param nomeAux
     * @return retorno
     *
     * 
     */

    public int validaNome(String nomein) {

        try {
            if (nomein.equals("")) {
                return 0;
            } else {
                return 1;
            }
        } catch (NullPointerException e) {
            return 0;
        }



    }

    /**
     * Objetivo: Validar endere�o informado
     * @param nomeAux
     * @return  0 - Endere�o Inv�lido
     * 			1 - Endere�o V�lido
     */
    public int validaEndereco(String enderecoin) {

        try {
            
            if (enderecoin.equals("")) {
                System.out.println("\nEndere�o incorreto, informe novamente!\n");
                return 0;
            } else {
               
                return 1;
            }
        } catch (NullPointerException e) {
            System.out.println("\nEndere�o incorreto, informe novamente!\n");
            return 0;
        }
    }

    /**
     * Objetivo: validar n�mero de telefone
     * @param telefone
     * @return 0 - Telefone inv�lido
     * 		   1 - Telefone v�lido
     */
    public int validaTelefone(String telefone) {
        int i, aux1 = 1;
        char Ctel[];

        try {
            Ctel = telefone.toCharArray();
            /*Verifica se todos os chars da string sao numericos*/

            if (telefone.length() != 8) {
                aux1 = 0;
            } else {
                for (i = 0; i < (telefone.length()); i++) {
                    if ((Ctel[i] < '0') || (Ctel[i] > '9')) {
                        aux1 = 0;
                    }
                }
            }

            return aux1;

        } catch (NullPointerException e) {
            aux1 = 0;
            return aux1;
        }
    }
    
    /**
     * Objetivo: validar email informado
     * Retorno: 0 - Email Inválido
     * 			1 - Email Válido
     *
     * @param emailAux
     * @return retorno
     *
     * 
     * 
     */

    public int validaEmail(String emailin) {

        try {
            Pattern padrao = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
            Matcher pesquisa = padrao.matcher(emailin);


            if (pesquisa.matches()) {
                return 1;
            } else {
                return 0;
            }
        } catch (NullPointerException e) {
            return 0;
        }



    }

    /**
     * Objetivo: validar RG
     * @param rg
     * @return 0 - Rg inv�lido
     * 		   1 - Rg v�lido
     */
    public int validaRg(String rg) {

        try {
            Pattern padrao = Pattern.compile("[0-9.-]+");
            Matcher pesquisa = padrao.matcher(rg);

            if (pesquisa.matches()) {
                return 1;
            } else {
                System.out.println("\nRG inv�lido, informe novamente\n");
                return 0;
            }
        } catch (NullPointerException e) {
            System.out.println("\nRG inv�lido, informe novamente\n");
            return 0;
        }

    }

    public int validaDDD(String DDDouDDI) {
        int i, aux1 = 1;
        char Ctel[];

        try {
            Ctel = DDDouDDI.toCharArray();
            /*Verifica se todos os chars da string sao numericos*/

            if (DDDouDDI.length() != 2) {
                aux1 = 0;
            } else {
                for (i = 0; i < (DDDouDDI.length()); i++) {
                    if ((Ctel[i] < '0') || (Ctel[i] > '9')) {
                        aux1 = 0;
                    }
                }
            }

            return aux1;

        } catch (NullPointerException e) {
            aux1 = 0;
            return aux1;
        }
    }

    public static boolean validaSalario(String Salario) throws NumberFormatException {
        try {
            Float.parseFloat(Salario);

        } catch (NumberFormatException e) {
             
              return false;
        }
        return true;

    }
        public static boolean validaDependentes(String dependentes) throws NumberFormatException {
        try {
            Integer.parseInt(dependentes);

        } catch (NumberFormatException e) {

              return false;
        }
        return true;

    }
        
        
        /**
     * Objetivo: validar senha informada
     * Retorno: 0 - Senha inválida
     * 			1 - Senha v�lida
     *
     * @param senhaAux
     * @return retorno 
     */

    public int validaSenha(String senhain) {

        try {
            if (senhain.equals("")) {
                return 0;
            } else {
                return 1;
            }
        } catch (NullPointerException e) {
            return 0;
        }



    }

}
